SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

CREATE Procedure [dbo].[SP_TXMVTO_CNTB_I46]        
/*-------------------------------------------------------------------*/                        
/*----- Empresa           : OFISIS S.A.                          ----*/                        
/*----- Cliente           : OFISIS S.A.                          ----*/                        
/*----- Sistema           : Contabilidad                         ----*/                        
/*----- Modulo            : Empresa                              ----*/                        
/*----- Programa          : Ajuste por Diferencia de cambio Docs(CASO OFIINTE) ----*/                        
/*----- Nombre            : SP_TXMVTO_CNTB_I46                   ----*/                        
/*----- Script            : TXMVTO_CNTB                          ----*/                        
/*----- Desarrollado por  : PDGV                                 ----*/                        
/*----- Base de Datos     : MS SQL Server                        ----*/                        
/*----- Version BD        : 8.0                                  ----*/         
/*-------------------------------------------------------------------*/         
/*-------------------------------------------------------------------*/         
/*----- Drop proc SP_TXMVTO_CNTB_I46                             ----*/         
/*----- Grant all on SP_TXMVTO_CNTB_I46 to PUBLIC                ----*/         
/*----- EXEC SP_TXMVTO_CNTB_I46  '01',1,'001',2004, 10, 1, 'COP'  ----*/         
/*-------------------------------------------------------------------*/         
@ISCO_EMPR           TD_VC_002,    
@ISCO_USUA           TD_VC_008,  
@IDFE_USUA           TD_DT_001,                      
@INNU_CNTB_EMPR      TD_IN_001_CONT,                          
@ISCO_UNID_CNTB      TD_VC_003,                          
@INNU_ANNO           TD_IN_004_ANNO,            
@INNU_MESE           TD_IN_002_MESE,         
@INNU_PROC           TD_IN_001,          
@ISST_ASIE_DFCA      TD_VC_003         
     
AS        
Declare         
@CSCO_OPRC_CNTB      TD_VC_003,         
@CSNU_ASTO           TD_VC_010,        
@CNNU_SECU           TD_IN_002,         
@CSCO_CNTA_EMPR      TD_VC_020,         
@CSST_CNTA_CAMB      TD_VC_003,         
@CDFE_ASTO_CNTB      TD_DT_001,        
@CSTI_AUXI_EMPR      TD_VC_001,         
@CSCO_AUXI_EMPR      TD_VC_020,         
@CSTI_DOCU           TD_VC_003,         
@CSNU_DOCU           TD_VC_020,         
@VSID_0006           TD_VC_003,         
@VSID_BNCO           TD_VC_003,         
@VSID_DIFE           TD_VC_003,         
@VSID_0004           TD_VC_003,        
@VSCO_OPRC_DIFE      TD_VC_003,        
@VSCO_OPRC_0004      TD_VC_003,     
@VSCO_UNID_0001       TD_VC_003,     
@VSCO_OPRC_0001      TD_VC_003,     
@VSNU_ASTO_0001      TD_VC_010,     
@VDFE_ASTO_0001      TD_DT_001,     
@VNNU_SECU_0001     TD_IN_002,    
@VSCO_MONE_VALI     TD_VC_003    
        
        
 Select @VSCO_MONE_VALI = ''  
  
 Select @VSID_0006 = ID_0006, @VSID_BNCO = ID_BNCO, @VSID_DIFE = ID_DIFE, @VSID_0004 = ID_0004, @VSCO_MONE_VALI =  IsNull(CO_MONE, '')        
 From TTCNTB_EMPR         
 Where CO_EMPR = @ISCO_EMPR         
 And NU_CNTB_EMPR = @INNU_CNTB_EMPR         
        
 Select @VSCO_OPRC_DIFE = IsNull(RTRIM(LTRIM(CO_OPRC_CNTB)), '')        
 From TTIDEN_OPER        
 Where CO_EMPR = @ISCO_EMPR         
 And NU_CNTB_EMPR = @INNU_CNTB_EMPR     
 And ID_OPRC = @VSID_DIFE        
        
 Select @VSCO_OPRC_0004 = IsNull(RTRIM(LTRIM(CO_OPRC_CNTB)), '')        
 From TTIDEN_OPER        
 Where CO_EMPR = @ISCO_EMPR         
 And NU_CNTB_EMPR = @INNU_CNTB_EMPR     
 And ID_OPRC = @VSID_0004        
   
-- SE AUMENTO STATUS QUE IDENTIFIQUE SI HA SIDO CANCELADO TOTALMENTE EL DOCUMENTO.        
 Declare CU_TXMVTO_CNTB_I46_1 Cursor For         
 Select t1.CO_OPRC_CNTB, t1.NU_ASTO, t1.NU_SECU, t1.CO_CNTA_EMPR, t2.ST_CNTA_CAMB, t1.FE_ASTO_CNTB,     
 t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR, t1.TI_DOCU, t1.NU_DOCU       
 From TXMVTO_CNTB t1, TMPLAN_EMPR t2, TTIDEN_CNTA t3        
 Where t1.CO_EMPR = @ISCO_EMPR        
 And t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR        
 And t1.CO_UNID_CNTB = @ISCO_UNID_CNTB        
 And t1.NU_ANNO = @INNU_ANNO        
 And t1.NU_MESE = @INNU_MESE        
 And t1.NU_PROC = @INNU_PROC         
 And t1.ST_CANC_DOCU =  'S'        
 And t1.SI_MVTO_CNTB =  'APR'       
 And IsNull(RTRIM(LTRIM(t1.NU_DOCU)), '') != ''        And t1.ST_DIFE_CAMB = 'N'        
 And t2.CO_EMPR = t1.CO_EMPR        
 And t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR        
 And t2.ST_DOCU_CNTB = 'S'  
 And t2.ST_CNTA_MONE = 'S'   
 And t2.CO_MONE != @VSCO_MONE_VALI  
 And t2.ST_CNTA_CTES = 'DOC'   
-- Group By t1.CO_OPRC_CNTB, t1.NU_ASTO, t1.NU_SECU        
-- Order By t1.CO_OPRC_CNTB, t1.NU_ASTO, t1.NU_SECU        
 Order By t1.CO_CNTA_EMPR, t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR, t1.TI_DOCU, t1.NU_DOCU    
        
 Open CU_TXMVTO_CNTB_I46_1                          
 Fetch CU_TXMVTO_CNTB_I46_1 Into @CSCO_OPRC_CNTB, @CSNU_ASTO, @CNNU_SECU,         
 @CSCO_CNTA_EMPR, @CSST_CNTA_CAMB, @CDFE_ASTO_CNTB, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU        
                               
 While @@Fetch_status = 0                          
   Begin          
        
    If @ISST_ASIE_DFCA = 'ORI'        
     Begin        
-- SACA EL ASTO DE CANCELACION PARA GRABAR LA LINEA DE DIF DE CAMBIO.    
/*     Select Top 1 @VSCO_UNID_0001 = CO_UNID_CNTB, @VSCO_OPRC_0001 = CO_OPRC_CNTB,     
     @VSNU_ASTO_0001 = NU_ASTO, @VDFE_ASTO_0001 = FE_ASTO_CNTB, @VNNU_SECU_0001 = NU_SECU    
     From TXMVTO_CNTB    
     Where CO_EMPR = @ISCO_EMPR     
     And NU_CNTB_EMPR = @INNU_CNTB_EMPR     
     And NU_ANNO = @INNU_ANNO     
     And NU_MESE <= @INNU_MESE    
     And CO_CNTA_EMPR = @CSCO_CNTA_EMPR     
     And TI_AUXI_EMPR = @CSTI_AUXI_EMPR    
     And CO_AUXI_EMPR = @CSCO_AUXI_EMPR    
     And TI_DOCU = @CSTI_DOCU    
     And NU_DOCU = @CSNU_DOCU    
     And SI_MVTO_CNTB = 'APR'    
     And ST_DIFE_CAMB = 'N'    
     Order By FE_USUA_CREA Desc*/    
    
--    Select @VSCO_VALI_CANC = Rtrim(@CSCO_CNTA_EMPR) + @CSTI_AUXI_EMPR + Rtrim(@CSCO_AUXI_EMPR) + @CSTI_DOCU + Rtrim(@CSNU_DOCU)    
    
--    If @VSCO_UNID_0001 + @VSCO_OPRC_0001 + @VSNU_ASTO_0001 = @VSCO_VALI_CANC     
--       Begin     
          Exec SP_TXMVTO_CNTB_I44 @ISCO_EMPR, @ISCO_USUA, @IDFE_USUA, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @CSCO_OPRC_CNTB,                                  
          @CSNU_ASTO, @CSCO_CNTA_EMPR, @CSST_CNTA_CAMB, @CDFE_ASTO_CNTB, @INNU_MESE, @INNU_ANNO,                                  
          @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CNNU_SECU, @INNU_PROC, 'N'             
--       End     
     End         
        
    If @ISST_ASIE_DFCA = 'COP'        
     Begin        
     Exec SP_TXMVTO_CNTB_I45 @ISCO_EMPR, @ISCO_USUA, @IDFE_USUA, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @VSCO_OPRC_DIFE,                                  
     @VSCO_OPRC_0004, @CSCO_CNTA_EMPR, @CSST_CNTA_CAMB, @CDFE_ASTO_CNTB, @INNU_MESE,                                  
     @INNU_ANNO, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CSCO_OPRC_CNTB,                             
     @CSNU_ASTO, @CNNU_SECU, @INNU_PROC, 'N'  
     End          
        
   Fetch CU_TXMVTO_CNTB_I46_1 Into @CSCO_OPRC_CNTB, @CSNU_ASTO, @CNNU_SECU,         
   @CSCO_CNTA_EMPR, @CSST_CNTA_CAMB, @CDFE_ASTO_CNTB, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU         
        
  End         
        
 Close CU_TXMVTO_CNTB_I46_1                        
 Deallocate CU_TXMVTO_CNTB_I46_1           
        
Return




GO
